Computing devices including but not limited to televisions, media players, traditional computer system, mobile devices, etc. are known to support the display of video (and/or graphics) on an associated display. The display may be part of or may be capable of being coupled to the computing device. Video for presentation on a display may be from any suitable source. For example, video may be broadcast by a variety of providers (e.g., from a cable television provider), may be read from any memory (e.g., RAM) or digital storage media (e.g., from a DVD), may be received over the internet from any suitable device thereon (e.g., a web server). As is further recognized, video may be interlaced. That is, the video may be formatted in a sequence of fields where each field is made of pixel values where each field contains half the pixel values for the display screen. For example, a first field may contain the pixel values for all the odd lines of the screen, whereas a second field may contain the pixel values for all of the even lines of the screen. As described in this example, the first field is of odd polarity while the second field is of even polarity. As is recognized, interlaced sequences of fields generally alternate polarity from field to field. When interlaced video is presented to a display capable of drawing the pixels associated with the interlaced video (e.g., a CRT display), the interlaced display sequentially draws one field of image data for every refresh period (i.e., per unit time) while alternating polarity over time.
In displays that are capable of supporting progressive scanning (i.e., displaying a full video frame in a line by line fashion), interlaced video is/may be converted to deinterlaced video, through a process called deinterlacing, such that more information can be presented on the display per unit time for better viewing. As is recognized, deinterlacing is the process of converting interlaced video (a sequence of fields) into a non-interlaced form (a sequence of frames). Deinterlacing may be used as part of an upconversion process to display video information formatted for a standard definition television (SDTV) on a high definition television (HDTV). For example SDTV video signals have 480 interlaced lines per frame (i.e., 480i); a variety of HDTV video signals exist, e.g., 1080i, 720p, etc. where the number indicates the number of lines per frame and the letter “i” indicates it is interlaced (data on every other line) while the letter “p” indicates it is progressive (data on every line). It is recognized that in this process (of video upconversion, e.g., from SDTV to HDTV), deinterlacing is used to first produce an initial frame of image data values before upconverting.
Prior art method for deinterlacing interlaced fields are also known to use motion compensated or motion adaptive techniques. For example, it is known to use a spatial interpolation technique (i.e., a bob) in areas of motion whereas it is known to use a temporal interpolation technique (i.e., a weave) in still areas.
Prior art methods for deinterlacing fields of interlaced video construct a single output frame of deinterlaced video by reading two or more interlaced fields from memory (or from any suitable source). To produce a single output frame for a current field, most prior art methods require reading four fields of interlaced video: (1) the current field, field F; (2) the previous field, field F−1; (3) the next field, field F+1, and (4) the previous, previous field, field F−2. For each pixel in the new frame that corresponds to a pixel location in the current field, F, the current pixel value in the current field, F, is used for the output pixel value. For each missing pixel in the new frame (i.e., each pixel location not associated with the current field, F), the four interlaced fields are examined to determine if motion is detected. If motion is detected, the output pixel value for this location is the result of a spatial interpolation (e.g., a bob). If no motion is detected, the output pixel value for this location is the result of a temporal interpolation, e.g., a weave where, a corresponding pixel value from the adjacent frame, F−1 or F+1, is used for the output pixel value. In this example, four interlaced fields were used to generate one output frame of deinterlaced video. Although there are many variations to this method (e.g., using only two fields to determine motion, etc.), in each case, only one frame is generated for two fields of interlaced video.
For each field of interlaced video read, the same number of memory accesses are required to access the fields. As is recognized, computing devices are often plagued by memory bottlenecks and, thus, prior art deinterlacing methods added to this problem. One solution is to add additional memory bandwidth (i.e., the throughput rate of reading and writing memory data) to systems to reduce this bottleneck effect. However, as is recognized this is an expensive solution.
Accordingly, a need exists for a deinterlacer and method therefore that utilizes less memory accesses and therefore does not have such an adverse effect on the memory bandwidth in computing devices. A similar need exists for a deinterlacer and method therefore that maintains quality in the deinterlaced frames.